package com.xmgong.hxdemo.chatmodule;

import android.content.Context;
import android.support.annotation.NonNull;
import android.util.Log;

import com.hyphenate.EMCallBack;
import com.hyphenate.chat.EMClient;
import com.hyphenate.chat.EMOptions;
import com.hyphenate.exceptions.HyphenateException;

/**
 * Created by xmgong on 2017/8/16.
 */

public class ChatPlugin {

    /**
     * 初始化
     *
     * @param applicationContext
     */
    public static void initChat(Context applicationContext) {
        EMOptions options = new EMOptions();
// 默认添加好友时，是不需要验证的，改成需要验证
        options.setAcceptInvitationAlways(false);

//初始化
        EMClient.getInstance().init(applicationContext, options);
//在做打包混淆时，关闭debug模式，避免消耗不必要的资源
        EMClient.getInstance().setDebugMode(true);
    }

    /**
     * 设置调试模式
     *
     * @param isdebug
     */
    public static void setDebug(boolean isdebug) {
        EMClient.getInstance().setDebugMode(isdebug);
    }

    /**
     * 注册账号
     * 同步方法
     */
    public static void RegistAccount(@NonNull String userid, String pwd) {
        try {
            EMClient.getInstance().createAccount(userid, pwd);
        } catch (HyphenateException e) {
            e.printStackTrace();
            Log.i("ChatPlugin", e.getDescription());
        }
    }

    /**
     * 登录
     * 异步方法
     *
     * @param userid
     * @param pwd
     * @param callBack
     */
    public static void LoginAccount(@NonNull String userid, @NonNull String pwd, EMCallBack callBack) {
        EMClient.getInstance().login(userid, pwd, callBack);
    }

    /**
     * 退出登录
     * 同步方法
     * 方法里第一个参数需要设为true，这样退出的时候会解绑设备token，否则可能会出现退出了，还能收到消息的现象。
     */
    public static void LogoutAccount(boolean isbind) {
        EMClient.getInstance().logout(isbind);
    }

    public static void LogoutAccount(boolean isbind, EMCallBack callBack) {
        EMClient.getInstance().logout(isbind, callBack);
    }

    /**
     * 登录成功后同步数据
     */
    public static void LoadChatData() {
        EMClient.getInstance().chatManager().loadAllConversations();
        EMClient.getInstance().groupManager().loadAllGroups();
    }


}
